package com.sheep.jucdemo.part2.part2_12;

/**
 * @Date 2022/4/14 22:05
 * @Created by sheep
 */
public class Test2_12_1 {

    public int updateEntry(long id){
        // （1）使用悲观锁获取指定记录，依靠数据库的update操作
        EntryObject entry = query("select * from table1 where id = #{id} for update",id);
        // （2）修改记录内容，根据计算修改entry记录的属性
        String name = generatorName(entry);
        entry.setName(name);
        // .....其他修改逻辑

        // （3）update操作
        int count = update("update table1 set name=#{name},age=#{age} where id = #{id}",entry);
        return count;

    }

    // 以下为操作数据库行为或具体业务行为，防止编译报错返回null替代

    private int update(String s, EntryObject entry) {
        return 0;
    }

    private EntryObject query(String s, long id) {
        return null;
    }

    private String generatorName(EntryObject entry) {
        return null;
    }
}
